package ManageSystem;
// 员工基类（抽象类）：封装所有员工的公共属性和行为模板
public abstract class Employee {
    // 公共属性：姓名、工号（私有化，通过Getter访问）
    private String name;
    private String empId;
    // 构造方法：初始化公共属性
    public Employee(String name, String empId) {
        this.name = name;
        this.empId = empId;
    }
    // 抽象方法1：计算薪资（子类必须实现，体现多态的“行为差异化”）
    public abstract double calculateSalary() throws InvalidWorkHoursException;
    // 抽象方法2：生成工资条（子类必须实现，封装工资条格式）
    public abstract String generatePaySlip();
    // Getter方法：提供公共属性的访问入口
    public String getName() {
        return name;
    }
    public String getEmpId() {
        return empId;
    }
}